package com.tensquare.user.service;

import com.tensquare.user.dao.AdminDao;
import com.tensquare.user.pojo.Admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import util.IdWorker;

/**
 * @author Macross
 * @Type AdminService.java
 * @Desc 管理员service服务
 * @date 2019/12/23 15:39
 */
@Service
public class AdminService {

    @Autowired
    private AdminDao adminDao;
    @Autowired
    private IdWorker idWorker;
    @Autowired
    private BCryptPasswordEncoder encoder;

    /**
     * 添加管理员
     * @param admin 管理员信息
     */
    public void add(Admin admin) {
        //设置管理员ID
        admin.setId(idWorker.nextId()+"");
        //密码加密
        admin.setPassword(encoder.encode(admin.getPassword()));
        //保存
        adminDao.save(admin);
    }

    /**
     * 登录校验
     * @param loginName 登陆名
     * @param password 密码
     * @return
     */
    public Admin login(String loginName, String password) {
        //通过登录名获取管理员信息
        Admin admin = adminDao.findByLoginName(loginName);
        //判断管理员信息是否为空
        if (admin != null) {
            //判断密码是否符合
            if (encoder.matches(password,admin.getPassword())) {
                //返回管理员信息
                return admin;
            }
        }
        //返回空
        return null;
    }

    /**
     * 删除管理员信息
     * @param adminId 管理员id
     */
    public void delete(String adminId) {
        //删除管理员信息
        adminDao.deleteById(adminId);
    }
}
